#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
using namespace std;

//void Add();
//
//void func(int a, double b)
//{
//	cout << "void func(int a, double b)" << endl;
//}
//
//void func(double b, int a)
//{
//	cout << "void func(double b, int a)" << endl;
//}
//
//void test1()
//{
//	func(1, 1.1);
//	func(2.2, 2);
//	Add();
//}



//int& Count()
//{
//	int n = 0;
//	n++;
//	return n;
//}

//int main()
//{
//	//test1();
//	//test2();
//	int& n = Count();
//	cout << n << endl;
//	cout << n << endl;
//	cout << n << endl;
//	cout << n << endl;
//	cout << n << endl;
//	cout << n << endl;
//	cout << n << endl;
//	return 0;
//}

//int& Count2()
//{
//	int n = 0;
//	n++;
//	
//	// ...
//	return n;
//}
//
//int& Count()
//{
//	int n = 1;
//	n++;
//	return n;
//}
//
//void test2()
//{
//	int a = 10;
//}
//
//int main()
//{
//	int& ret = Count();
//	cout << ret << endl;
//	test2();
//	cout << ret << endl;
//	return 0;
//}

void f(int)
{
	cout << "f(int)" << endl;
}
void f(int*)
{
	cout << "f(int*)" << endl;
}
int main()
{
	f(0);
	f(NULL);
	f((int*)NULL);
	return 0;
}

//inline int add(int a, int b)
//{
//	return a + b;
//}
//
//int main()
//{
//	int a = 1;
//	int b = 2;
//	int c = add(a, b);
//}